package com.niiwoo.activity.stage.service.goods;

import java.util.List;

import com.niiwoo.activity.stage.dto.request.goods.GiftCountReqDTO;
import com.niiwoo.activity.stage.dto.request.goods.GiftReqDTO;
import com.niiwoo.activity.stage.dto.request.goods.SummarizeListRequestDTO;
import com.niiwoo.activity.stage.dto.request.goods.UserAddressReqDTO;
import com.niiwoo.activity.stage.dto.response.prize.PrizeDetailRespVO;
import com.niiwoo.activity.stage.dto.response.goods.GiftCountRespDTO;
import com.niiwoo.activity.stage.dto.response.goods.GiftRespDTO;
import com.niiwoo.activity.stage.dto.response.goods.SummarizeListResponseDTO;
import com.niiwoo.activity.stage.dto.response.goods.PrizeRespDTO;
import com.niiwoo.activity.stage.dto.response.goods.UserAddressRespDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

public interface GiftDubboService {

	/**
	 * 我的礼品汇总列表
	 *
	 * @param requestDTO
	 * @return
	 */
	default SummarizeListResponseDTO summarizeList(SummarizeListRequestDTO requestDTO) {
		throw new UnsupportedOperationException("unimplemented");
	};

	/**
	 * 分页查询我的礼品信息
	 * @param dto
	 * @return
	 */
	public PageResponseDTO<GiftRespDTO> getPage(GiftReqDTO dto);

	/**
	 * 四周年-我的奖品
	 * @param userId, fyAwardInfoList
	 * @return
	 */
	default PrizeRespDTO getMyPrize(String userId, List<PrizeDetailRespVO> fyAwardInfoList) {
		throw new UnsupportedOperationException("不支持的方法");
	}


	/**
	 * 我的礼品商品类型
	 * @param reqDto
	 * @return
	 */
	public List<GiftCountRespDTO> goodTypeCount(GiftCountReqDTO reqDto);

	/**
	 * 编辑我的礼品实物类发货地址
	 * @param reqDto
	 */
	public void updateAddress(UserAddressReqDTO reqDto);

	/**
	 * 查询实物类我的礼品的物流信息
	 * @param id
	 * @return
	 */
	public UserAddressRespDTO getAddress(Long id,String userId);
}
